package xijia.plus.docs.manage.all.util;

/**
 * 搜索工具类
 * @author wangsong
 * @mail 1720696548@qq.com
 * @date 2022/11/17 0017 13:08 
 * @version 1.0.0
 */
public class SearchUtil {


    /**
     * 给搜索关键字标红
     * @param str 内容 (标题/描述/内容等)
     * @param keyword 需要标红的关键字
     * @param isCase  是否匹配大小写（true=是，支持大小写模糊匹配, false= 精准匹配）
     *
     * @author wangsong
     * @date 2022/11/17 0017 13:09
     * @return java.lang.String
     * @version 1.0.0
     */
    public static String keywordRed(String str, String keyword, boolean isCase) {
        if (str == null || str == "") {
            return str;
        }
        if (isCase) {
            keyword = keyword.toLowerCase();
        }
        int keywordLength = keyword.length();
        StringBuffer sb = new StringBuffer();
        for (int i = 0; i < str.length(); i++) {
            String val = null;
            if (i + keywordLength <= str.length()) {
                val = str.substring(i, i + keywordLength);
            } else {
                val = str.substring(i);
            }
            String toVal = isCase ? val.toLowerCase() : val;
            if (toVal.equals(keyword)) {
                String pStr = "<span style=\"color: red\">" + val + "</span>";
                sb.append(pStr);
                i += keywordLength - 1;
            } else {
                sb.append(str.charAt(i) + "");
            }
        }
        return sb.toString();
    }

    // public static void main(String[] args) {
    //     System.out.println(keywordRed("啦啦1AA啦11啦哈哈啦啦", "aa", true));
    // }
}
